package com.airlines.crewassignment.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.airlines.crewassignment.domain.DateTimeRange;
import com.airlines.crewassignment.entity.crew.CrewExperienceAcTypeValue;

/**
 * @author xxxx
 * @date 2018年5月10日 
 * @description 机组成员机型相关经历数据查询
 */
public interface CrewFlightExperienceAcTypeMapper {
	/**
	 * 查询所有机型
	 * @return
	 */
	List<String> listAcType();
	
	/**
	 * 查询左座经历时间
	 * @param dutyCode
	 * @param workcode
	 * @param dateTimeRange
	 * @return
	 */
	List<CrewExperienceAcTypeValue> leftDuration(@Param("dutyCode")String dutyCode,
										@Param("workcode")String workcode,
										@Param("dateTimeRange")DateTimeRange dateTimeRange);
	/**
	 * 查询右座经历时间
	 * @param dutyCode
	 * @param workcode
	 * @param dateTimeRange
	 * @return
	 */
	List<CrewExperienceAcTypeValue> rightDuration(@Param("dutyCode")String dutyCode,
										 @Param("workcode")String workcode,
										 @Param("dateTimeRange")DateTimeRange dateTimeRange);
	
	/**
	 * 查询经历时间
	 * @param dutyCode
	 * @param workcode
	 * @param dateTimeRange
	 * @return
	 */
	List<CrewExperienceAcTypeValue> seatDuration(@Param("dutyCode")String dutyCode,
			 @Param("workcode")String workcode,
			 @Param("dateTimeRange")DateTimeRange dateTimeRange);
	
	
	/**
	 * 按照日期查询所有机组的机型相关的数据
	 * @测试 只添加了90天3次起落数据
	 * @param dutyCode 可以为null
	 * @param workcode 可以为空
	 * @param DateTimeRange 不能为null
	 * @return
	 */
	List<CrewExperienceAcTypeValue> listUpdownCount(@Param("dutyCode")String dutyCode, 
										   @Param("workcode")String workcode,
										   @Param("dateTimeRange") DateTimeRange dateTimeRange);

}
